Francis Peñalosa | Gustavo Giopato | Hsiao-Yu Chen (Vivi)
Kimberly Batin | Olubukola Kolade Ogunniyi | Rebeca Canales
Puerto Rico's mountainous terrain and tropical climate, with variable rainfall and a distinct hurricane season, are crucial factors in its vulnerability to climate change's impact, as noted by Britannica and Discover Puerto Rico. The Department of Natural and Environmental Resources emphasizes the critical need for specialized adaption techniques while acknowledging the increased hazards. The island's inability to prepare for disasters and its limited financial resources make it more difficult for it to respond and recover effectively.Puerto Rico saw a substantially delayed and less focused reaction from the federal government (Vick, 2017). The island experienced a long blackout, with some homes not getting electricity again until mid-August 2018. Furthermore, according to the US Army Corps of Engineers, many rural inhabitants had trouble getting to medical facilities immediately because of impassable mountain roads.
After Maria's damage to Puerto Rico, architects made sure to plan for the houses that can survive from hurricanes (Naditz, 2022). Many houses in Puerto Rico are now built from concrete because of the risk of hurricanes, while others are still built from wood and might not survive in disasters.Nonetheless, as highlighted by Santiago and Lamba (2022), there remains a critical shortage of affordable housing options for a significant portion of the population.
Marvel Architects responded to the aftermath of hurricanes Irma and Maria by spearheading efforts to empower vulnerable communities. In 2022, they introduced prototype homes engineered to withstand hurricanes and earthquakes. Equipped with solar panels for electricity generation and cisterns for rainwater harvesting and filtration, these homes represent a resilient solution to provide sustainable power and water access, as detailed by Peters (2022).
According to the research, less than 4% of the island's households are insured, signaling a shift in disaster risk management as private insurers are stepping in where the National Flood Insurance Program (NFIP) has been the traditional go-to. However, the reality in Puerto Rico is that 3.4 million residents live in informal or illegally constructed homes, which are not eligible for mandatory flood insurance, limiting their access to such protection. (Kousky & Lingle, 2018).
Actionable Insights
The government should support families in accessing affordable, disaster-resistant housing through innovative solutions and financial assistance. Collaborations with developers like Marvel Architects and non-profit organizations are vital for building affordable homes. Ensuring robust community infrastructures, including shelters with reliable power and water supplies, is crucial for emergency accommodation. Local governments must mandate building updates to withstand severe weather events, enhancing community resilience
Improving disaster planning and response is crucial as Puerto Rico faces increasingly powerful hurricanes due to climate change. The government should prioritize landslide and flood forecasts, improve communication, and offer early notifications, drawing inspiration from Japan's comprehensive disaster education approach (Japan: Early Warning System Blueprint for Climate Adaptation Efforts | PreventionWeb, 2023). Collaborative planning with weather forecasters, emergency responders, and local leaders is key to engaging communities in safety preparations(Gavari-Starkie et al., 2021). Similar to Japan, where disaster preparedness is included into community events and school curriculum (Ministry of Foreign Affairs of Japan, 2020), residents should be well-informed about evacuation protocols, items to pack, and safety measures (Typhoons in Japan: What to Do Before, during and After, 2019). Similar educational initiatives, such as routine disaster response exercises and classes on disaster protection, might be implemented in Puerto Rico.
Parametric insurance methods, based on specific hazard criteria like hurricane strength or earthquake magnitude, could swiftly close this gap, providing cost-effective insurance alternatives and faster recovery funding. By using cutting-edge technologies like machine learning and geospatial analysis to improve risk assessment and insurance modeling, insurance rates could be further adjusted to more closely match real risk profiles.Given housing and economic constraints, the government should explore ways to enhance insurance accessibility and uptake, crucial for long-term neighborhood recovery and resilience, alongside to providing post-disaster financial assistance.
Puerto Rico's journey through and after Hurricane Maria in 2017 offers valuable insights into how climate change can worsen natural disasters and how other parts of the world can prepare for similar threats. Puerto Rico's recovery and future resilience require a challenging approach, incorporating housing innovation, disaster preparedness, effective insurance models, and environmental conservation. These efforts need to be supported by strong community involvement and a responsive government enhancing disaster preparedness, and exploring innovative solutions. This approach is not only significant for Puerto Rico's continued recovery but also for the global effort to adapt to a changing climate and its associated risks. Collaboration between government, communities, and the private sector is necessary to ensure the well-being of Puerto Ricans.
# supress warnings to keep the code clean
import warnings
warnings.filterwarnings('ignore')
# GeoTiff images
import rasterio
from osgeo import gdal
# data visualisation
from matplotlib import pyplot as plt
from matplotlib.pyplot import figure
import matplotlib.image as img
from PIL import Image
# import GIS tools
import numpy as np
import xarray as xr
import matplotlib.pyplot as plt
import rasterio.features
import rioxarray as rio
from matplotlib.cm import RdYlGn, Reds
# import Planetary Computer tools
import pystac_client
import planetary_computer as pc
import odc
from odc.stac import stac_load
# additional libraries
from datetime import date # date-related calculations
# model building
import ultralytics
from ultralytics import YOLO
import labelme2yolo
# others
import os
import shutil
import zipfile
## Hurricane Maria - San Juan, Puerto Rico ##
# Defining the bounding box for the entire data region
min_lon = -66.19385887
min_lat = 18.27306794
max_lon = -66.08007533
max_lat = 18.48024350
# setting geographic boundary
bounds = (min_lon, min_lat, max_lon, max_lat)
# setting time window
time_window = "2017-04-01/2018-04-30" #394 days to understand the hurricane's impact
# connecting to the planetary computer
stac = pystac_client.Client.open("https://planetarycomputer.microsoft.com/api/stac/v1")
# seaching for data
search = stac.search(collections = ["sentinel-2-l2a"],
bbox = bounds,
datetime = time_window)
# instantiating results list
items = list(search.get_all_items())
# results for the items matching the query
print('This is the number of scenes that touch our region:',len(items))
This is the number of scenes that touch our region: 130
The following ODC-STAC code will load the selected items from the catalog search, select the desired spectral bands, including the 'qa_pixel' cloud filtering band, reproject into Lat-Lon coordinates (EPSG:4326) at 30-meters resolution (typical of Landsat pixel resolution), and clip the region to the spatial bounding box.
# pixel resolution for the final product
resolution = 10 # meters per pixel
# scaling to degrees per pizel
scale = resolution / 111320.0 # degrees per pixel for CRS:4326
xx = stac_load(
items,
bands = ["red", "green", "blue", "nir", "SCL"],
crs = "EPSG:4326", # latitude-longitude
resolution = scale, # degrees
chunks = {"x": 2048, "y": 2048},
dtype = "uint16",
patch_url = pc.sign,
bbox = bounds
)
# viewing the dimensions of our XARRAY and the variables
display(xx)
<xarray.Dataset>
Dimensions: (latitude: 2308, longitude: 1268, time: 67)
Coordinates:
* latitude (latitude) float64 18.48 18.48 18.48 ... 18.27 18.27 18.27
* longitude (longitude) float64 -66.19 -66.19 -66.19 ... -66.08 -66.08
spatial_ref int32 4326
* time (time) datetime64[ns] 2017-04-08T15:07:21.026000 ... 2018-04...
Data variables:
red (time, latitude, longitude) uint16 dask.array<chunksize=(1, 2048, 1268), meta=np.ndarray>
green (time, latitude, longitude) uint16 dask.array<chunksize=(1, 2048, 1268), meta=np.ndarray>
blue (time, latitude, longitude) uint16 dask.array<chunksize=(1, 2048, 1268), meta=np.ndarray>
nir (time, latitude, longitude) uint16 dask.array<chunksize=(1, 2048, 1268), meta=np.ndarray>
SCL (time, latitude, longitude) uint16 dask.array<chunksize=(1, 2048, 1268), meta=np.ndarray># subsetting results for RGB
plot_xx = xx[ ["red", "green", "blue"] ].to_array()
# showing results
plot_xx.plot.imshow(col = 'time', # time
col_wrap = 4 , # four columns per row
robust = True ,
vmin = 0 ,
vmax = 3000 )
# rendering results
plt.show()